From: Tim Deegan Date: Thu, 28 Nov 2013 14:33:06 +0000 (+0000) Subject: common/vsprintf: Explicitly treat negative lengths as 'unlimited' X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5518 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=034a5199c620596c9fc95a8cb7de122a922dc428;p=xen.git common/vsprintf: Explicitly treat negative lengths as 'unlimited' The old code relied on implictly casting negative numbers to size_t making a very large limit, which was correct but non-obvious. Coverity CID 1128575 Signed-off-by: Tim Deegan Reviewed-by: Andrew Cooper Acked-by: Keir Fraser --- diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index f7cb0f184f..8c432821b0 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -240,7 +240,7 @@ static char *number( static char *string(char *str, char *end, const char *s, int field_width, int precision, int flags) { - int i, len = strnlen(s, precision); + int i, len = (precision < 0) ? strlen(s) : strnlen(s, precision); if (!(flags & LEFT)) { while (len < field_width--) {